<?php

/**
 * Contrôleur de la page d'accueil
 */
class home_controller extends Component
{
    /**
     * Constructeur
     */
    public function __construct()
    {
    }
    
    /**
     * Ajout de la vue par défaut au contenu
     */
    public function defaut()
    {

        if(!isset($_COOKIE['first_visit']))
            $this->AfficherAide();

        setcookie('first_visit', true, (time() + 3600 * 24 * 365));

        $mea = Base::Load(CLASS_STATIC)->getHome();

        $classementMagasin = array(
            'less' => Base::Load(CLASS_SHOP)->getMoinsChers(10),
            'most' => Base::Load(CLASS_SHOP)->getPlusChers(10)
        );

        $this->_view->assign('classementMag', $classementMagasin);
        
        $lastReleve = Base::Load(CLASS_RELEVE)->getLast(10);
        $this->_view->assign('lastReleve', $lastReleve);

        $topChasseur = Base::Load(CLASS_USER)->getTop(10);

        $this->_view->assign('topChasseur', $topChasseur);

        $topMagCher = Base::Load(CLASS_RELEVE)->getVilleMostCost(10);
        $this->_view->assign('topMagCher', $topMagCher);

        $this->_view->assign('mea', $mea);
        $this->_view->addBlock('content', 'defaut.tpl');
    }

    /**
     * Gestion du moteur de recherche
     */
    public function search_bar()
    {
        $this->setContentType('text/plain');
        $query = $_GET['query'];
        $queryType = array('ville', 'departement', 'region','products', 'user');
        $data = Base::Load(CLASS_SEARCH)->MySearch($query, $queryType, true);
        exit($data);
    }
    
    /**
     * Récupération du champ de recherche et redirection vers la fiche correspondante
     *
     * @param: array $data Un tableau créé par la requête selon la valeur du champ
     */
    public function POST_search(array $data)
    {
        if (!empty($data['return'])) {
            $query      = str_replace(' ', '-', $data['q']);
            $data       = json_decode($data['return']);
            $redirect   = SYS_FOLDER . $data->type . '/' . $data->id . '-' . $query;
        
            header(sprintf('Location: %s', $redirect));
        }
    }
    
    /**
     * Affichage de la popin d'aide
     */
    public function AfficherAide()
    {
        $this->_view->assign('regions', Base::Load(CLASS_LOC)->getRegion());
        $this->_view->addBlock('erreur', 'aide.tpl', 'controller/user/view/');
    }
}


/* -- Fin du fichier -- */